package co.com.smart.persistence.entity.dto;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the smart_especialidad database table.
 * 
 */
@Entity
@Table(name="smart_especialidad")
@NamedQuery(name="SmartEspecialidad.findAll", query="SELECT s FROM SmartEspecialidad s")
public class SmartEspecialidad implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="sm_scespecialidad")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private BigDecimal smScespecialidad;

	@Column(name="sm_cdespecialidad")
	private String smCdespecialidad;

	@Column(name="sm_cousuario")
	private String smCousuario;

	@Column(name="sm_dsespecialidad")
	private String smDsespecialidad;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smFhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smFhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smFhretiro;

	//bi-directional many-to-one association to SmartMedico
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartEspecialidad", fetch = FetchType.LAZY)
	private List<SmartMedico> smartMedicos;

	public SmartEspecialidad() {
	}

	public BigDecimal getSmScespecialidad() {
		return this.smScespecialidad;
	}

	public void setSmScespecialidad(BigDecimal smScespecialidad) {
		this.smScespecialidad = smScespecialidad;
	}

	public String getSmCdespecialidad() {
		return this.smCdespecialidad;
	}

	public void setSmCdespecialidad(String smCdespecialidad) {
		this.smCdespecialidad = smCdespecialidad;
	}

	public String getSmCousuario() {
		return this.smCousuario;
	}

	public void setSmCousuario(String smCousuario) {
		this.smCousuario = smCousuario;
	}

	public String getSmDsespecialidad() {
		return this.smDsespecialidad;
	}

	public void setSmDsespecialidad(String smDsespecialidad) {
		this.smDsespecialidad = smDsespecialidad;
	}

	public Date getSmFhingreso() {
		return this.smFhingreso;
	}

	public void setSmFhingreso(Date smFhingreso) {
		this.smFhingreso = smFhingreso;
	}

	public Date getSmFhmodificacion() {
		return this.smFhmodificacion;
	}

	public void setSmFhmodificacion(Date smFhmodificacion) {
		this.smFhmodificacion = smFhmodificacion;
	}

	public Date getSmFhretiro() {
		return this.smFhretiro;
	}

	public void setSmFhretiro(Date smFhretiro) {
		this.smFhretiro = smFhretiro;
	}

	public List<SmartMedico> getSmartMedicos() {
		return this.smartMedicos;
	}

	public void setSmartMedicos(List<SmartMedico> smartMedicos) {
		this.smartMedicos = smartMedicos;
	}

	public SmartMedico addSmartMedico(SmartMedico smartMedico) {
		getSmartMedicos().add(smartMedico);
		smartMedico.setSmartEspecialidad(this);

		return smartMedico;
	}

	public SmartMedico removeSmartMedico(SmartMedico smartMedico) {
		getSmartMedicos().remove(smartMedico);
		smartMedico.setSmartEspecialidad(null);

		return smartMedico;
	}

}